// 放置全局指令
import Vue from 'vue'
import store from '@/store'

// 管理员权限特殊处理
const adminPerms = '*:*:*'
// 封装和按钮权限相关的指令
// 实现流程
// 1. 全局指令的定义方式 - 没有任何功能的指令模板代码跑通
Vue.directive('btn-auth', {
    // 指令绑定的元素被渲染到dom中时自动执行
    inserted(el, binding) {
        // el-指令绑定到的dom元素-button
        // binding.value-指令的绑定值
        // console.log(el, binding);
        // 2. 在指令中添加控制按钮显示和隐藏的逻辑
        const btnPerm = binding.value
        const userPermissions = store.state.user.userProfile.permissions
        // console.log(btnPerm, userPermissions);
        if (!userPermissions.includes(btnPerm) && !userPermissions.includes(adminPerms)) {
            el.remove()
        }
    }
})
